Video is increasingly delivered using adaptive streaming (AS) techniques, like for instance HTTP based adaptive streaming (HAS). Using adaptive streaming, a video item, e.g. a file or stream, is encoded and made available in different quality levels. The video client estimates the highest sustainable quality level based on its own measurements, and requests the video item in this highest sustainable quality level. In case of HTTP adaptive streaming for instance, each segment is made available through the HTTP server together with a manifest file describing the video item in terms of available quality levels and required segments for play-out. The video client initiates play-out by requesting the manifest file from the HTTP server. The video client thereafter starts downloading the video segments by sending an
HTTP-GET request for each segment. The desired quality is specified for each segment in the HTTP-GET request. The video client thereto incorporates a client heuristic that decides autonomously on the quality level of each requested video segment. The quality selection by the client heuristic is based on client terminal specifications, like for instance the display size, supported decoders, the processing power of the client device, information related to the ongoing session such as the filling level of the buffer at the client, etc., and the client's own estimation of the network conditions typically perceived bandwidth on the link estimated by measuring the transfer rate of previous, received video segments.
Since the video client decides autonomously on the requested quality levels, each client shall try to optimize its own experience. Video servers and intermediate elements do not have any control on the quality level that is selected by the client. As a result of for instance network congestion or sub-optimal decisions by the quality level determination algorithm, buffer starvation or buffer underrun may happen at the client side, leading to interruption of video play-out and discomfort of the user watching the video stream.
It is an objective of the present invention to disclose an adaptive streaming aware system and method that overcomes or reduces the above identified problem of buffer underrun or buffer starvation.